package com.you.raft.common.entity;

import lombok.*;

import java.io.Serializable;

/**
 * Leader才能发出追加日志请求
 */
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class AppendEntryRequest implements Serializable {

    /**
     * 任期号
     */
    private long term;

    /**
     * Leader的ID
     */
    private String leaderId;

    /**
     * 前一个日志号
     */
    private long prevLogIndex;

    /**
     * 前一个任期号
     */
    private long preLogTerm;

    /**
     * 日志条目（表示心跳时为空；一次性发送多个是为了提高效率）
     */
    private LogEntry[] entries;

    /**
     * 领导人已经提交的日志的索引值
     */
    private long leaderCommit;

}